package com.example.utils;

import java.io.IOException;

import org.apache.http.Header;
import org.apache.http.client.ClientProtocolException;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

import com.example.model.GameModel;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.Base64;
import com.loopj.android.http.RequestParams;

public class Utils {

	public static final String GCM_ID = "614301986426";
	public static final String GCM_REG_LINK = "http://khogamehay.vn/gcm/register.php";
	public static final String SERVER = "http://khogamehay.vn/GameServiceForMobileApplication/api.php?";
	public static final String LINK_IMAGE = "http://khogamehay.vn/public/uploads/products/";
	public static final String LINK_APK = "http://khogamehay.vn/public/uploads/apps/";
	public static final String[] gameType = { "1", "2", "3", "4", "5", "6",
			"7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17",
			"18", "19", "20", "21", "22", "23", "24", "25", "26" };
	public static final String[] gameName = { "Mới nhất ", "Phổ biến ",
			"Game - Trò chơi", "Email - Chat - Gọi điện", "Mạng xã hội",
			"Ứng dụng giải trí", "Chụp & Xử lí ảnh", "Quản lí video - Nhạc",
			"Xem phim & TV Online", "Tử vi & Phong thuỷ", "Ứng dụng cho bé",
			"Giáo dục & Học tập", "Truyện tranh - Hài hước",
			"Sách - Truyện - Tài liệu", "Tin Tức & Tạp chí",
			"Hình nền - Nhạc chuông", "Quản lí điện thoại",
			"Trình duyệt & add-on", "Cá nhân", "Bảo mật - Diệt virus",
			"Y tế - Sức khoẻ", "Du lịch - Địa điểm", "Bản đồ- Định vị",
			"Tài chính & Ngân hàng", "Ứng dụng doanh nghiệp", "Ứng dụng khác" };
	public static final String TAG = "DOWNLOAD GAME LOG";

	public static <T> void sendRequestAsync(final String url,
			final RequestParams params,
			final ResultListenner<String> resultListener)
			throws ClientProtocolException, IOException {
		final AsyncHttpClient httpclient = new AsyncHttpClient();
		params.setHttpEntityIsRepeatable(true);
		Log.w("post  data ", url);
		httpclient.get(url, params, new AsyncHttpResponseHandler() {

			@Override
			public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
				if (resultListener != null) {
					String data;
//					try {
						data = new String(arg2);
						Log.w("Receive Data", data);
//						try {
//						    // Convert from Unicode to UTF-8
//						    byte[] utf8 = data.getBytes("UTF-8");
//
//						    // Convert from UTF-8 to Unicode
//						    data = new String(utf8, "UTF-8");
//						} catch (UnsupportedEncodingException e) {
//						}
//						
//						Log.w("Receive Data", data);
						resultListener.onSuccess(data);
//					} catch (UnsupportedEncodingException e) {
//						e.printStackTrace();
//					}
				}
			}

			@Override
			public void onFailure(int arg0, Header[] arg1, byte[] arg2,
					Throwable t) {
				if (resultListener != null) {
					resultListener.onFail(t.getMessage());
				}
			}
		});
	}

	public static GameModel getGameModelFromString(String data) {
		try {
			JSONObject gameModelData = new JSONObject(data);
			String id = gameModelData.getString("id");
			String name = gameModelData.getString("name");
			String linkAvartar = gameModelData.getString("linkavatar");
			String linkApk = gameModelData.getString("linkapk");
			String rating = gameModelData.getString("rating");
			String description = gameModelData.getString("description");
			String download = gameModelData.getString("download");
			String isOnStore = gameModelData.getString("isonstore");
			String type = gameModelData.getString("type");
			String author = gameModelData.getString("author");
			String slogan = gameModelData.getString("slogan");
			GameModel gameModel = new GameModel(id, name, linkAvartar, linkApk,
					rating, description, download, isOnStore, type, author,
					slogan);
			return gameModel;
		} catch (JSONException e) {
			e.printStackTrace();
			return null;
		}
	}
}
